package com.zgjl.api.util;

import java.security.SecureRandom;
import java.util.Base64;
/**
 * @Author: ShenDong
 * @Date: 2024/11/10 11:24
 * @Description: 密钥生成工具生成随机SM4密钥和JWT签名密钥：
 **/

public class KeyGeneratorTool {

    // 生成128位（16字节）SM4密钥
    public static String generateSM4Key() {
        byte[] key = new byte[16]; // 16字节 = 128位
        new SecureRandom().nextBytes(key);
        return Base64.getEncoder().encodeToString(key); // 生成24字符的Base64编码
    }

    // 生成256位（32字节）JWT密钥
    public static String generateJWTSecretKey() {
        byte[] key = new byte[32]; // 32字节 = 256位
        new SecureRandom().nextBytes(key);
        return Base64.getEncoder().encodeToString(key); // 生成44字符的Base64编码
    }

    public static void main(String[] args) {
        System.out.println("Generated SM4 Key: " + generateSM4Key());
        System.out.println("Generated JWT Secret Key: " + generateJWTSecretKey());
    }
}
